home *** CD-ROM | disk | FTP | other *** search
/ AOL File Library: 4,401 to 4,500 / aol-file-protocol-4400-4401-to-4500.zip / AOLDLs / PDA-Newton Development / ND Newt Development Environm / newt-devenv-31.sit / applic0.nwt < prev    next >
Text File  |  1995-04-05  |  3KB  |  124 lines

  1. Notes
  2. {labels: 'NIL, viewFont: 10241} // nil=Unfiled, or specify a folder, e.g., 'Business.  remove viewFont for current Styles default
  3. //ERASE! in order to erase existing entries in this folder first
  4.  
  5. applic0.nwt -- Slurpee format
  6. 4/5/95
  7. Copyright 1994, 1995 S. Weyer.  All Rights Reserved Worldwide.
  8. To be distributed only with Newt 2.5 package
  9.  
  10. A simple introduction to creating applications with Newt. This is a variation
  11. on a version described in article "Building Native Newton Applications with
  12. Newt" in PIE Developers, July 1994. see also NewtATut.
  13.  
  14. To minimize text entry, use the Slurpee utility and a terminal emulator to
  15. transfer this text file as paragraphs in the Notepad.  The folder in 2nd line
  16. is currently set on nil (Unfiled); select same folder in Newt to load.
  17.  
  18. Tap Expr button, select expression :doObj('add, 'MyApp).
  19. Tap Eval, select MyApp, then select each subsequent object in list
  20. to create application incrementally.  See NewtNews.txt.  See also NewtATut
  21.  
  22. ----------
  23. MyApp
  24. //:doObj('buildCO,'MyApp)
  25. //:doObj('add,'MyApp)
  26. {_proto: protoApp,
  27. //viewBounds -- defaults to full screen
  28. title: "Hello World",
  29. _package: {
  30.     shortTitle: "Hello", // a shorter title for Extras if you install
  31.     },
  32. }
  33. ----------
  34. MyApp.myInputProto
  35. {_proto: protoInputLine,
  36. text: "",
  37. value: 0,
  38. viewFlags: 10753, //vVisible + vClickable + vGesturesAllowed + vNumbersAllowed,
  39. getTextValue: func() // from text, set number value (used by total)
  40.     begin
  41.     self.value := StringToNumber(text);
  42.     if not value then value := 0;
  43.     end,
  44. viewChangedScript: func(slot,view)
  45.     if slot='text
  46.     then begin
  47.         :getTextValue();
  48.         if total exists then total:update();
  49.         end,
  50. viewSetupFormScript: func()
  51.     begin
  52.     self.text := clone(text);
  53.     :getTextValue();
  54.     inherited:?viewSetupFormScript();
  55.     end,
  56. }
  57. ----------
  58. MyApp+num1
  59. {_proto: myInputProto,
  60. viewBounds: RelBounds(130,20,100,20),
  61. }
  62. ----------
  63. MyApp+num2
  64. {_proto: myInputProto,
  65. viewBounds: RelBounds(130,45,100,20),
  66. }
  67. ----------
  68. MyApp+total
  69. {_proto: protoStaticText,
  70. viewBounds: RelBounds(130,80,100,16),
  71. text: "Total", // initial text
  72. numVars: ['num1, 'num2],
  73. getValueText: func() // return text from summing field values
  74.     begin
  75.     local tot := 0, field;
  76.     foreach field in numVars // add up num1.value + num2.value etc.
  77.     do tot := tot + GetVariable(self,field).value;
  78.     if round exists and round.viewValue
  79.     then tot := RIntToL(tot);
  80.     NumberStr(tot); // return string
  81.     end,
  82. update: func()
  83.     SetValue(self,'text,:getValueText()),
  84. viewSetupFormScript: func()
  85.     begin
  86.     self.text := :getValueText();
  87.     inherited:?viewSeutpFormScript();
  88.     end,
  89. }
  90. ----------
  91. MyApp+round
  92. {_proto: protoCheckbox,
  93. viewBounds: RelBounds(20,78,50,16),
  94. text: "Round?",
  95. valueChanged: func()
  96.     if total exists then total:update(),
  97. }
  98. ---------
  99. MyApp+button
  100. {_proto: protoTextButton,
  101. viewBounds: RelBounds(100,120,40,16),
  102. text: "About",
  103. buttonClickScript: func()
  104.     if aboutFloat exists
  105.     then aboutFloat:open()
  106.     else PlaySound(@102), // ROM_funbeep
  107. }
  108. ----------
  109. MyApp+aboutFloat
  110. {_proto: protoFloatNGo,
  111. viewBounds: RelBounds(20,140,150,100),
  112. }
  113. ----------
  114. MyApp.aboutFloat+aboutText
  115. {viewclass: clParagraphView,
  116. viewBounds: RelBounds(5,5,140,90),
  117. text: "This demo created by"&&
  118.       userConfiguration.name&
  119.       ", with the help of Newt, the lizard wizard",
  120. viewFlags: 3, //vReadOnly+vVisible,
  121. }
  122. ----------
  123. BYE!
  124.